<?php

/**
 * Un controlleur métier, ici notre controlleur pour toutes nos fonctions
 */
class operationController {
	/**
	 * 
	 * Le controller resultat permet de controle si la question et le(s) résultat(s)
	 * sont valide.
	 */
	public static function resultat() {
		// Récupère la langue 
		$lang = Language::getLang();
		$search = Controller::getField ( 'resultat', 'search' );
		Controller::destroySessionVariable ( 'resultats' );
		if (isset ( $search ) || $search != "") {
			// On cherche les réponses  à la question sur le site 
			// ww.trueknowledge.com qui est en anglais
			$urlSearch = 'http://www.trueknowledge.com/q/';
			$originalQuestion = $search;
			// On traduit la question en anglais
			$search = Google_Translate_API::translate ( $search, $lang );
			$search = html_entity_decode ( $search, ENT_QUOTES );
			fb ( 'Question FR : ' . $originalQuestion . ' - Question EN : ' . $search );
			// On fait appel au moteur afin de récuperer le(s) résultat(s) de la recherche
			$resultats = Moteur::interpreter ( $urlSearch, $search );
						
			// Si il y a un résultat
			if ($resultats != null) {
				// Récupère les liens wikipedia en français
				$iResult = 0;
				$iLien = 0;
				foreach ( $resultats as $resultat ) {
					if (isset ( $resultat ['liens'] )) {
						foreach ( $resultat ['liens'] as $lien ) {
							// Si c'est un lien wikipedia
							if (strpos ( $lien ['href'], "wikipedia.org" ) !== false) {
								// Récupère la lien wikipedia dans la langue voulue
								$url = Moteur::getWikiLinkTranslate ( $lien ['href'], $lang );
								if ($url != null) {
									$resultats [$iResult] ['liens'] [$iLien] ['href'] = $url;
									// Récupère l'info de droite du site wiki
									$resultats [$iResult] ['liens'] [$iLien] ['wiki'] = Moteur::getWikiInfoTranslate ( $url, $lang );
								}
							}
							$iLien ++;
						}
					}
					$iResult ++;
					$iLien = 0;
				}
				
				// Passe le résultat dans une variable de session
				Controller::setSessionVariable ( 'resultats', $resultats );
			} // il n'y a pas de réponses trouvées
			else 
			{
				Controller::setError ( 'error_result', 'Désolée, je ne connais pas la réponse à cette question.' );
			}
		}
	}
}
?>